package jnpf.engine.assembly.prop;

import jnpf.engine.assembly.BaseExPropertyDTO;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * @Author:LoveMyOrange
 * @Description:
 * @Date:Created in 2022/4/12 18:57
 * @desc 用户节点基础配置
 */
@Data
public class UserTaskBasicPropDTO extends BaseExPropertyDTO implements Serializable {

    /**
     * 流程有哪些角色可以发起
     */
    private List<String> startProcessAuthRoles;
    /**
     * 流程有哪些人可以发起
     */
    private List<String> startProcessAuthUsers;
    /**
     * 流程有哪些岗位可以发起
     */
    private List<String> startProcessAuthPosition;


    //取值使用 FlowTaskOperatorEnum的code来取值
    private String assigneeType;
    /**
     * 指定成员/候选人员->人
     **/
    private List<String> approvers;
    /**
     * 指定成员/候选人员->岗位
     **/
    private List<String> approverPos;
    /**
     * 指定成员/候选人员->角色
     **/
    private List<String> approverRole;
    /**
     * 发起人的第几级主管
     **/
    private Integer managerLevel;
    /**
     * 变量->表单字段
     **/
    private String formField;
    /**
     * 表单字段审核方式的类型 (1-用户 2-部门)
     */
    private String formFieldType = "1";
    /**
     * 环节->审批节点
     **/
    private String nodeId;
    /**
     * 服务->请求路径
     **/
    private String getUserUrl;

    /**
     * 审批人方式
     * 指定人审批(0 或签 1 会签)
     **/
    private Integer counterSign;
    /**
     * 会签比例 在会签的情况下才有用
     **/
    private Long countersignRatio;

    /**
     * 加签设置 是否允许加签
     **/
    private Boolean hasFreeApprover;

    /**
     * 流程进度
     **/
    private String progress;

    /**
     * 传阅岗位
     **/
    private List<String> circulatePosition;
    /**
     * 传阅人
     **/
    private List<String> circulateUser;
    /**
     * 传阅角色
     **/
    private List<String> circulateRole;
    /**
     * 自定义抄送人
     **/
    private Boolean isCustomCopy;

    /**
     * 自动转办的人
     */
    private List<String>  autoTransferAssignee;
    /**
     * 审批人为空的策略  
    "自动通过" value="1"
    "自动驳回" value="2"></el-option>
    "转交给管理员" value="3"></el-option>
    "转交给指定人" value="4"></el-option>
    "提示异常" value="5"></el-option>
     */
    private String noAssignee;

    private String autoSkipValue;
}
